package mylab.starters.mybatis.config.tenant;

import lombok.Getter;

/**
 * 租户数据存储类型
 * <p>
 * NONE、COLUMN、SCHEMA 模式开源
 * <p>
 */
@Getter
public enum TenantMode {
    /**
     * 非租户模式
     */
    NONE("非租户模式"),
    /**
     * 租户模式：以字段隔离
     * 在sql中拼接 tenant_code 字段
     */
    COLUMN("共享数据源共享数据库，通过字段隔离租户数据"),
    /**
     * 租户模式：独立数据库
     * 在sql中拼接 数据库 schema
     */
    SCHEMA("共享数据源独立数据库，通过独立库隔离租户数据"),

    /**
     * 租户模式：独立数据源
     */
    DATASOURCE("独立数据源隔离模式，完全隔离"),

    ;
    private final String describe;

    TenantMode(String describe) {
        this.describe = describe;
    }
}
